/**
 * 页面导航工具类
 * 统一管理所有页面的跳转逻辑
 */
class Navigation {
	/**
	 * 跳转到登录页
	 */
	static goToLogin() {
		uni.reLaunch({
			url: '/pages/login/login'
		});
	}
  /**
   * 跳转到首页
   */
  static goToIndex() {
    uni.switchTab({
      url: '/pages/index/index'
    });
  }

  /**
   * 跳转到分类页
   */
  static goToCategories() {
    uni.switchTab({
      url: '/pages/categories/categories'
    });
  }

  /**
   * 跳转到购物车页
   */
  static goToCart() {
    uni.switchTab({
      url: '/pages/car/car'
    });
  }

  /**
   * 跳转到个人中心页
   */
  static goToProfile() {
    uni.switchTab({
      url: '/pages/profile/profile'
    });
  }

  /**
   * 跳转到搜索页
   */
  static goToSearch() {
    uni.navigateTo({
      url: '/pages/index/search/search'
    });
  }

  /**
   * 跳转到商品列表页
   * @param {Object} params 参数对象
   * @param {string} params.category 分类名称
   * @param {string} params.keyword 搜索关键词
   */
  static goToList(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/index/list/list${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到商品详情页
   * @param {Object} params 参数对象
   * @param {string} params.id 商品ID
   * @param {string} params.name 商品名称
   */
  static goToProduct(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/index/product/product${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到无结果页
   * @param {Object} params 参数对象
   * @param {string} params.keyword 搜索关键词
   */
  static goToNoList(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/index/no-list/no-list${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到确认订单页
   * @param {Object} params 参数对象
   * @param {Array} params.products 商品列表
   * @param {number} params.totalPrice 总价格
   */
  static goToConfirm(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(JSON.stringify(params[key]))}`)
      .join('&');
    const url = `/pages/car/confirm/confirm${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到支付页
   * @param {Object} params 参数对象
   * @param {string} params.orderId 订单ID
   * @param {number} params.amount 支付金额
   */
  static goToPayment(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/car/payment/payment${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到地址管理页
   * @param {Object} params 参数对象
   * @param {string} params.mode 模式：'select'选择地址，'manage'管理地址
   */
  static goToAddress(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/car/address/address${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到优惠券页
   * @param {Object} params 参数对象
   * @param {string} params.mode 模式：'select'选择优惠券，'manage'管理优惠券
   */
  static goToCoupon(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/car/coupon/coupon${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 跳转到支付成功页
   * @param {Object} params 参数对象
   * @param {string} params.orderId 订单ID
   * @param {number} params.amount 支付金额
   */
  static goToSuccess(params = {}) {
    const query = Object.keys(params)
      .map(key => `${key}=${encodeURIComponent(params[key])}`)
      .join('&');
    const url = `/pages/car/payment/success/success${query ? '?' + query : ''}`;
    uni.navigateTo({ url });
  }

  /**
   * 返回上一页
   */
  static goBack() {
    uni.navigateBack();
  }

  /**
   * 返回首页
   */
  static goHome() {
    uni.reLaunch({
      url: '/pages/index/index'
    });
  }

  /**
   * 重定向到指定页面（关闭当前页面）
   * @param {string} url 目标页面路径
   */
  static redirectTo(url) {
    uni.redirectTo({ url });
  }

  /**
   * 重定向到首页
   */
  static redirectToHome() {
    uni.reLaunch({
      url: '/pages/index/index'
    });
  }
}

export default Navigation;
